package com.leenmvc.core.annotation;

import com.leenmvc.core.dao.communal.Dialect;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 数据库名注解
 * 所有与数据库表对应的实体都需要写到这个注解，并且每一个地段都必不可少
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface DbInfo {

    /**
     * 数据表名字
     * @return
     */
    String value();

    /**
     * 数据表说明
     * @return
     */
    String comment();

    /**
     * 数据源组
     *  默认值根据具体的项目需要修改
     * @return
     */
    String sourceGroup() default "db_anshiiot";

    /**
     * 属于哪个库（数据库名字不可重复）
     * @return
     */
    String schema() default "";

    /**
     * 方言（改实体对应的数据库是什么类型）
     * @return
     */
    Dialect dialect() default Dialect.MYSQL;

    /**
     * 导出模板实体
     *
     * @return
     */
    Class<?> excelEntity() default Object.class;

}
